//封装请求
/**
 * 1.封装功能函数
 *  1）功能点明确
 *  2）函数内部应该保留固定代码（静态的）
 *  3）将动态的数据抽取成形参，由使用者根据自身情况动态传入实参
 *  4）一个良好的功能函数应该设置形参的默认值
 * 2.封装功能组件
 *  1）功能点明确
 *  2）组件内部保留静态的代码
 *  3）将动态的数据抽取成props参数，由使用者根据自身的情况已标签属性的形式动态传入props数据
 *  4）一个良好的组件应该设置组件的必要性及数据类型
 *    props:{
 *      msg:{
 *          required:true,
 *          default:默认值，
 *          type:String 
 *      }
 *    }
 */

import config from './config'
import loginData from './loginData'
export default (url,data={},method='GET') => {
  // console.log(wx.getStorageSync('cookies')[0])
  // console.log(wx.getStorageSync('cookies').find(item => item.indexOf('MUSIC_U') !== -1))
  return new Promise((resolve, reject)=>{
    wx.request({
      url: config.mobileHost + url,
      data,
      method,
      header:{
        cookie:wx.getStorageSync('cookies')?wx.getStorageSync('cookies').find(item => item.indexOf('MUSIC_U') !== -1) : ''
        // cookie:wx.getStorageSync('cookies')?wx.getStorageSync('cookies').find(item => item.indexOf('MUSIC_U') !== -1):''
      },
      success: (res)=>{
        // console.log('请求成功',res)
        if(data.isLogin){//登录请求
          wx.setStorage({
            key: 'cookies',
            data:loginData.cookies 
          })
          resolve(loginData.data);
        }else{
          resolve(res.data);
        }
      },
      fail:(err)=>{
        // console.log('请求失败',err)
        reject(err);
      }
    })
  })
}